WebPagetest 您所在的位置:网站首页 private instances webpagetest documentation WebPagetest

WebPagetest

2023-03-23 00:56| 来源: 网络整理| 查看: 265

私有实例

WebPagetest可安装和运行私有实例的软件包。

一、发布

最新版本是3.0

二、轻松部署(在EC2上)

有一个EC2 AMI用于WebPageTest服务器,可以有很多好处:

无需配置(在5分钟内启动并运行)。 根据需要在所有EC2(亚马逊弹性计算云)区域中自动启动和停止EC2测试代理。 自动更新到最新的服务器和代理代码。 三、手动部署 3.1 系统要求

WebPageTest可以配置在一个系统上运行(Web服务器和测试机器都在同一台PC上运行),或者为Web服务器和测试人员使用单独的系统。

3.2 Web服务器

Web服务器可以是任何支持PHP的操作系统(Linux或Windows)。

Nginx (推荐php-fpm) 或者 Apache 2.x+: PHP 5.3.0 或更新版本,包括以下模块: gd zip zlib mbstring curl (如果你想使用远程存储,像S3和谷歌存储) sqlite (如果你想要能够编辑测试标签) ffmpeg 在路径中可用(用于提取视频缩略图) 对于移动代理视频支持,需要1.x(Linux,Windows) imagemagick (可选) 如果使用移动Node.js代理,则需要移动视频处理 jpegtran (可选) 在路径中可用(用于jpeg分析) exiftool (可选) 在路径中可用(用于jpeg分析) 3.3 测试机

Windows(Vista或更高版本)(如果使用64位,需要WebPagetest 2.9或更高版本支持流量整形)

四、Configuring

zip存档包含2个文件夹。www文件夹是Web服务器软件,代理文件夹用于测试机器。存档中的配置文件具有.sample扩展名,因此如果要更新现有安装,则可以使用存档中的新文件覆盖当前文件。 2.8的新版本是一个脚本,将检查常见的配置问题。 可以通过http:///install访问。

4.1 Web Server 使用所需的模块配置Apache,并设置为允许覆盖.htaccess。配置文件可能如下所示: AllowOverride all Order allow,deny Allow from all DocumentRoot /var/www/webpagetest 如果将使用代理,需要上传.pcap文件。在php.ini中将upload_max_filesize和post_max_size设置为大值(10mb应该足够)。 如果要收集Chrome开发工具跟踪,请考虑将memory_limit设置为较大值或通过将其设置为-1来禁用内存限制。 使用PHP DSO处理程序mod_php可以大幅减少CPU使用率。 重新启动Apache以使用新的配置设置。 将文件从归档中的www文件夹复制到DocumentRoot位置(例如/var/www/webpagetest)。 授予Apache用户对DocumentRoot下的以下文件夹的读/写权限: tmp dat results work/jobs work/video logs 在设置文件夹中有几个设置文件可用于配置站点。制作所有.sample文件的副本(删除.sample扩展名)作为配置设置的模板。大多数设置可以按原样使用,除了locations.ini(特别是如果要配置多个测试位置)。 有关配置locations.ini的详情,请访问:locations 4.2 测试机 安装要用于测试的浏览器 在测试系统中配置的管理员帐户。最简单和最可靠的方法是使用Microsoft Technet的自动登录应用程序。 禁用任何屏幕保护程序(桌面需要保持可见的视频捕获工作) 停用UAC(Vista或更高版本 - 滑动到“从不通知”) 卸载IE的增强安全模式(Windows Server) 在虚拟机(特别是KVM)中运行时使用稳定的时钟 /USEPMTIMER到XP或Server 2003的boot.ini 管理员shell命令“bcdedit / set {default} useplatformclock true” 配置Windows引导到桌面(Server 2012) 安装桌面体验 http://www.win2012workstation.com/tag/start-screen/#manual 禁用事件跟踪器(Windows Server - 为了方便) 运行gpedit.msc 打开Computer Configuration\Administrative Templates\System 打开Display Shutdown Event Tracker 将其设置为禁用 将测试软件从代理文件夹复制到系统(本示例为c:\ webpagetest) 对于Windows 8.1(或服务器2012 R2)测试代理程序,请安装DUMMYNET ipfw驱动程序 如果要在64位Windows上安装,请右键单击c:\webpagetest\dummynet\64bit文件夹中的testmode.cmd,然后选择以管理员身份运行。重新启动系统以启用测试模式。如果你不运行,重启后不会开启流量整形。 将文件从webpagetest\dummynet\32bit或webpagetest\dummynet\64bit目录复制到webpagetest\dummynet目录(取决于操作系统) 拔出用于访问Internet的网络适配器的属性 点击Install 选择Service然后点击Add 点击Have Disk并导航到webpagetest\dummynet 选择ipfw + dummynet服务(单击任何有关未签名的驱动程序的警告) Windows 10中,如果使用Microsoft Edge测试(工作进行中): 为所有用户安装Python 2.7到c:\ Python27(默认安装目录) 从cmd shell安装selenium c:\Python27\Scripts\pip install selenium 从代理文件夹安装pyWin32(可能需要从管理员命令提示符运行) 安装Imagemagick 安装Windows性能工具包(取消选中adk设置中的所有其他选项) 需要为每个版本的IE配置单独的机器/VM,但其余的浏览器都可以在同一台机器上运行,与IE共享一台机器(测试将不会同时运行,将会交替进行) 创建任务计划程序任务以在登录时运行wptdriver.exe: 将其配置为以最高权限运行 让它在用户帐户登录时运行 确保它未配置为在3天后终止(默认任务调度程序配置) 根据样本创建设置文件(wptdriver.ini)的副本 wptdriver可以自动安装Chrome和Firefox(并保持Firefox最新)。如果你想手动安装浏览器,然后删除installer = ...条目为每个你想要tp手动安装的浏览器 确保浏览器可执行文件的路径对于系统是正确的(如果正在自动安装Chrome和Firefox,他们只会在首次运行wptdriver后安装) 将位置配置为与locations.ini中服务器上定义的位置匹配 配置位置键与locations.ini中的服务器匹配 确保location.ini文件中的browsers = x,y,z条目中的浏览器名,与ini文件中定义的名字对应。 启动wptdriver,安装它需要安装的任何软件(退出,当出现“waiting for work”)。 重新启动以确保一切正常启动

如果将远程桌面连接到测试机,请确保在完成后重新启动机器,否则桌面将保持锁定,屏幕捕获将不起作用。

4.2.1 无外设服务器(包括Google Compute Engine)

屏幕截图和视频捕获都需要桌面可见才能进行测试。 某些服务器没有可用的视频设备或分辨率太低,无法用于测试。在这些情况下,设置变得有点复杂(但仍然可能)。测试机需要2个用户帐户,并且需要为自己运行RDP会话,并在RDP会话中运行测试,这将给它一个虚拟显示使用。这也可以用作一种安全技术,如果你不舒服让桌面解锁在任何时候。

创建2个用户帐户。 我们将他们称为“用户”和“管理员”。 “用户”帐户将是在启动时用于创建RDP会话的帐户,“管理员”帐户是将运行测试的地方。 “用户”帐户不需要是管理员帐户 设置测试帐户: 将RDP连接到“管理员”帐户,并将其设置为使用正常的WPT配置运行测试 注销RDP会话(不要仅断开连接,将用户注销,但使系统保持运行) 通过RDP重新连接到“管理员”帐户,并确保测试在连接后立即自动启动并正常运行 设置RDP主机帐户: 用RDP连接到“用户”帐户 配置自动登录在启动时自动登录“用户”帐户。我通常使用Microsoft的自动登录应用程序来进行配置。 使用管理员帐户将RDP连接到127.0.0.2,并记住凭据(不能是localhost或127.0.0.1,因为RDP将阻止这些尝试,但它允许127.0.0.2仍然是本地主机) 打开cmd shell 使用cmdkey /generic:TERMSRV/127.0.0.2 /user:administrator /pass:存储RDP的管理员密码 输入mstsc /w:1920 /h:1200 /v:127.0.0.2并确保它打开一个RDP连接并开始测试(在验证其工作后关闭会话) 创建任务计划程序任务以在运行mstsc.exe的用户帐户的命令行选项/w:1920 /h:1200 /v:127.0.0.2登录时运行。

现在当你重新启动服务器,它应该自动登录到“用户”帐户,然后RDP到本地实例与“管理员”帐户,测试将在RDP会话内部运行。

4.3 Mobile

移动代理说明在这里可用。

五、EC2测试代理

我们为EC2准备了公共AMI,可以用作通过实例用户数据动态配置的WebPagetest测试器。这些映像具有安装和配置测试系统所需的所有软件(包括用于生成视频的AVISynth和用于进行流量整形的dummynet)。

5.1 配置

在启动实例时,通过用户数据字符串来配置测试代理。

5.1.1 WebPagetest参数 wpt_server - WebPagetest正在运行的Web服务器(必需) wpt_url - (仅限Linux代理)用于获取的工作目录的基本URL。即https://www.webpagetest.org/work/ wpt_loc - 要用于wptdriver的位置名称(可选 - 如果未指定,它将回退到wpt_location或从区域构建 - 例如ec2-us-east) wpt_location - 用于URLBlast的位置名称 (可选 - 如果没有指定,它将从区域和浏览器(例如ec2-us-east-IE8)构建)。如果wpt_loc未设置,wptdriver将附加_wptdriver到此位置ID。 wpt_key - 指定位置的秘密密钥(可选) wpt_timeout - 每个测试的超时设置(以秒为单位)(可选,默认为60) wpt_username - 使用WPT服务器进行基本认证的用户名。 如果未指定wpt_password,则忽略。 (可选的) wpt_password - 使用WPT服务器进行基本认证的密码。 如果未指定wpt_username,则忽略。 (可选的) wpt_validcertificate - 可如果wpt_server的方案不为“https”,就可忽略。如果值为“0”,则不会检查证书的主机名和到期时间。如果值为'1',则WPT服务器SSL证书的CN必须与wpt_server参数中指定的主机名匹配,证书必须有效。 (可选,默认为'0') 5.1.2 用户数据字符串示例

wpt_server=www.webpagetest.org wpt_loc=Test wpt_key=xxxxx

5.1.3 locations.ini示例

服务器的samples.ini示例可用于配置所有可用的EC2区域: http://webpagetest.googlecode.com/svn/trunk/www/webpagetest/settings/locations.ini.EC2-sample

5.2 AMI Images

对于AMI(“IE 9”,“IE 10”或“IE 11”)中的IE版本,wptdriver实例(IE 9,10和11)必须在locations.ini中具有匹配的浏览器名称。 这些实例会在启动时自动安装最新支持的Chrome和Firefox版本(并在运行时自动更新)

5.2.1 查找图片(又名EC2 AMI search sucks)

如果无法找到手动启动的AMI,那是因为EC2的AMI搜索功能非常糟糕。 我发现这条路可行:

请勿在Images-> AMIs界面中搜索AMI 转到Instances - >Instances(或spot instances) 登录 Instance 选择 "Community AMIs" 选中 "Windows" 将AMI ID放在搜索框中,然后按Enter键 5.2.2 us-east (Virginia) IE9/Chrome/Firefox/Safari - ami-83e4c5e9 IE10/Chrome/Firefox/Safari - ami-0ae1c060 IE11/Chrome/Firefox/Safari - ami-4a84a220 Linux (Chrome Only) - ami-cf68c6d9 5.2.3 us-east-2 (Ohio) IE9/Chrome/Firefox/Safari - ami-c86933ad IE10/Chrome/Firefox/Safari - ami-55742e30 IE11/Chrome/Firefox/Safari - ami-c96933ac Linux (Chrome Only) - ami-cd4f6ba8 5.2.4 us-west (California) IE9/Chrome/Firefox/Safari - ami-03d6a263 IE10/Chrome/Firefox/Safari - ami-05eb9f65 IE11/Chrome/Firefox/Safari - ami-678afe07 Linux (Chrome Only) - ami-2a3c644a 5.2.5 us-west-2 (Oregon) IE9/Chrome/Firefox/Safari - ami-03e80c63 IE10/Chrome/Firefox/Safari - ami-fdeb0f9d IE11/Chrome/Firefox/Safari - ami-b4ab4fd4 Linux (Chrome Only) - ami-9cc049fc 5.2.6 ca-central-1 (Canada Central) IE9/Chrome/Firefox/Safari - ami-184efc7c IE10/Chrome/Firefox/Safari - ami-13328077 IE11/Chrome/Firefox/Safari - ami-0345f767 Linux (Chrome Only) - ami-4140fd25 5.2.7 eu-west-1 (Ireland) IE9/Chrome/Firefox/Safari - ami-2d5fea5e IE10/Chrome/Firefox/Safari - ami-3b45f048 IE11/Chrome/Firefox/Safari - ami-a3a81dd0 Linux (Chrome Only) - ami-cc1423aa 5.2.8 eu-west-2 (London) IE9/Chrome/Firefox/Safari - ami-4ad6dc2e IE10/Chrome/Firefox/Safari - ami-2dd5df49 IE11/Chrome/Firefox/Safari - ami-4bd6dc2f Linux (Chrome Only) - ami-b7b7a2d3 5.2.9 eu-central (Frankfurt) IE9/Chrome/Firefox/Safari - ami-879c85eb IE10/Chrome/Firefox/Safari - ami-ec9b8280 IE11/Chrome/Firefox/Safari - ami-87f2ebeb Linux (Chrome Only) - ami-6534e30a 5.2.10 ap-northeast-1 (Tokyo) IE9/Chrome/Firefox/Safari - ami-4ed6e820 IE10/Chrome/Firefox/Safari - ami-ebd3ed85 IE11/Chrome/Firefox/Safari - ami-2f221c41 Linux (Chrome Only) - ami-31154856 5.2.11 ap-northeast-2 (Seoul) IE9/Chrome/Firefox/Safari - ami-b2e12fdc IE10/Chrome/Firefox/Safari - ami-76e12f18 IE11/Chrome/Firefox/Safari - ami-15e52b7b Linux (Chrome Only) - ami-e9ac7f87 5.2.12 ap-southeast-1 (Singapore) IE9/Chrome/Firefox/Safari - ami-f87ab69b IE10/Chrome/Firefox/Safari - ami-ce78b4ad IE11/Chrome/Firefox/Safari - ami-3e55995d Linux (Chrome Only) - ami-f3cd7f90 5.2.13 ap-southeast-2 (Sydney) IE9/Chrome/Firefox/Safari - ami-306c4853 IE10/Chrome/Firefox/Safari - ami-25644046 IE11/Chrome/Firefox/Safari - ami-e88eab8b Linux (Chrome Only) - ami-f72f2294 5.2.14 ap-south-1 (Mumbai) IE9/Chrome/Firefox/Safari - ami-7a86ec15 IE10/Chrome/Firefox/Safari - ami-bf80ead0 IE11/Chrome/Firefox/Safari - ami-d498f2bb Linux (Chrome Only) - ami-b787f7d8 5.2.15 sa-east (Sao Paulo) IE9/Chrome/Firefox/Safari - ami-79c54515 IE10/Chrome/Firefox/Safari - ami-7cc54510 IE11/Chrome/Firefox/Safari - ami-203abb4c Linux (Chrome Only) - ami-38eb8a54 六、更新测试代理

如果存在更新文件(在服务器上的/work/update中),测试代理将自动从服务器更新其代码。 每个更新包括zip文件(实际updata)和包含有关更新的一些元数据(最重要的是软件版本)的ini文件。 IE代理(update.zip/update.ini)和Chrome/Firefox代理(wptupdate.zip/wptupdate.ini)有不同的更新。

每个新版本都包含更新的代理二进制文件,但是如果需要在公用实例上提供,但尚未在新版本中打包的错误修复或功能,则有时更新代理之间的版本是有帮助。在这种情况下,可以从WebPagetest的公共实例下载更新,并将其部署在您的私有实例上(代理向后兼容,所以您不需要更新网页代码,除非您需要更新功能)。

使用WebPageTest 2.18或更高版本,服务器可以在发布时自动更新到最新版本。 在服务器的settings/settings.ini中,添加:

agentUpdate=http://cdn.webpagetest.org/

手动下载和更新:

下载代理更新: http://www.webpagetest.org/work/update/update.zip http://www.webpagetest.org/work/update/wptupdate.zip 从zip文件中提取ini文件(update.ini和wptupdate.ini) 将zip文件复制到服务器上的/work/update文件夹(可能需要备份现有的代理更新,以便在必要时回滚) 将ini文件复制到服务器上的/work/update文件夹

上传更新后,每个代理程序将在运行下一个测试之前自动下载并安装更新,以确保在进行更多测试之前更新被部署。

七、故障排除 7.1 Web Server 等待在队列前面 通常的问题是在location.ini。仔细检查位置设置是否与代理正在拉动服务器的位置相匹配。还要注意,如果使用的是密钥,它们是否匹配。可以检查Apache访问日志,以便测试代理进行传入请求。 测试完成,但没有成功 如果您使用的是64位Windows客户端,则无法执行流量整形(换为dummynet)。在locations.ini中,将connectivity=LAN添加到测试位置。 瀑布图丢失 检查GD库是否安装。GD库用于绘制瀑布并生成缩略图。 看看是否安装了php-zip,php5-zip或类似的zip库。 使用某些默认的PHP发行版,图形库可能会不存在。 屏幕截图为黑色 从RDP断开连接时,请尝试重新启动实例,而不是从RDP客户端断开连接。当您断开连接时,RDP会锁定桌面,这将导致屏幕截图和视频中断。 /var/log/apache2/error.log中的错误消息: [Mon Apr 30 10:18:14 2012] [error] [client 1.2.3.4] PHP Warning: POST Content-Length of 22689689 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 PHP enforces a limit on the size of uploaded files, and an agent is uploading something larger than this limit. Change upload_max_filesize and post_max_filesize to larger values in php.ini. 7.1.1 测试代理

磁盘空间不足

WebPagetest不会保留任何临时文件,但有时Windows本身会留下东西,磁盘可以填满。当发生这种情况时,可以执行以下几个常见的事情来清理它: 可以删除C:\Windows\SoftwareDistribution\Download中的所有内容。Windows将为其安装的每个软件更新保持完整的安装程序,并且在安装后不需要它们。 尝试 右键单击C盘 -> 属性 -> 磁盘清理。 可能会有一些崩溃报告可以清理 如果没有足够的空间,还可以做更多的事情: 使用windirstat看看占用磁盘空间 IE临时Internet文件可能被破坏,并且正在失去控制。CCleaner有时可以帮助修复 确保休眠已禁用(盘上没有·hiberfil.sys`) 最糟糕的情况是,可以禁用交换文件来恢复一两次


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有